home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.40 / scroll / scroll.p < prev    next >
Text File  |  1994-12-11  |  2KB  |  58 lines

  1. {Programm: Scroll
  2.  Sinn:     einfache Laufschrift über ScrollRaster für KP/MP3
  3.  Autor:    PackMAN, Falk Zühlsdorff, Lindenberg 66, 98693 Ilmenau
  4.            email: ai036@rz.tu-ilmenau.de                           }
  5.  
  6. PROGRAM Scroll;
  7. USES INTUITION,GRAPHICS;
  8. VAR Win  : p_Window;
  9.     rp   : p_RastPort;
  10.     Text : string;STATIC;
  11.  
  12. {  Parameter:
  13.  
  14.    myport  : Zeiger auf den RastPort, in dem gescrollt werden soll.
  15.    breite  : Breite des zu scrollenden Bereichs.
  16.    speed   : Scrollgeschwindigkeit, nur Werte von 1 bis 8 sind sinnvoll.
  17.    repeats : Scrollwiederholungen speedabhängig;
  18.    zeichen-
  19.    zahl    : Anzahl der zu scrollenden Zeichen.
  20.    x       : x-Koordinate des Scrollbereichs.
  21.    y       : y-Koordinate des Scrollbereichs.
  22.    Text    : String, der den Scrolltext enthält. }
  23.  
  24. PROCEDURE ScrollTx(myport:p_RastPort;breite,speed,repeats,
  25.                    zeichenzahl,x,y:INTEGER;Text:string);
  26. VAR p,z : INTEGER;
  27.     gfx : LONG;
  28. BEGIN
  29.  p:=0; z:=1;
  30.  repeats:=(repeats*Length(Text)*2)-(3*repeats);
  31.   REPEAT
  32.    WaitTOF;                                       {synchronisieren}
  33.    ScrollRaster(myport,speed,0,x,y,breite,y+9);   {scrollen}
  34.    Move(myport,breite-speed-p,y+8);               {Position ändern}
  35.    IF zeichenzahl<=z THEN z:=1;                   {Text gescrolled ?}
  36.    IF repeats>-1 THEN DEC(repeats);               {Wiederholung - 1}
  37.    gfx:=_Text(myport,Text[z],1);                  {Buchstaben zeichnen}
  38.    p:=p+speed;                                    {Hilfszähler erhöhen}
  39.    IF p>8-speed THEN BEGIN p:=0; INC(z); END;     {nächstes Zeichen?}
  40.   UNTIL (repeats=0);                              {und tschüß}
  41.   END;
  42.  
  43. BEGIN
  44.   Text:="   Dies ist eine simple Textscroll-Routine...            ";
  45.  
  46.   Win:=Open_Window(0,100,640,40,$0302,0,0,
  47.        "Scroll (c) by PackMAN for PURITY",NIL,0,0,0,0);
  48.   rp:=Win^.RPort;
  49.  
  50.   ScrollTx(rp,545,4,5,Length(Text),95,20,Text);
  51.   delay(50);
  52.   Close_Window(Win);
  53. END.
  54.  
  55.  
  56.  
  57.  
  58.